# Order confirmation

# Overview

The order confirmation page, located within the shop code, is the only use entrypoint for payment processes.

Customers receive an email containing a link to the shop. That link contains a unique token which represents the order.

The shop database contains an entity which combines the token with all data needed for order confirmation and payment, e.g.:

  • Order number
  • CardCode
  • Order rows (items)
  • Amount and currency
  • Language / country
  • Sales contact person
  • Account balance (abstracted)

Interpreting the incoming token the shop presents a confirmation page. Confirmation is another process by itself and not covered here (yet).

After confirmation the customer may choose a payment method. The shop uses the data attached to the order to determine the set of allowed payment methods.

In case of "credit card" the shop form opens a sub form containing credit card fields. This sub form is partly created by a JS API from Concardis. As a result, the confidention input fields are located within iFrames which are not accessible by the shop's own JS code.

Submission of the payment form triggers the payment process (customer creation, payment instrument generation, Concardis order placement).

# Implementation

Order confirmation is located within the shop code at ~/api. It runs its own symfony installation (own vendor folder) and a nodejs environment (own node_modules folder).

Nodejs is only used during build; It bundles the page into a browser-capable web application.

# Credential management

Credentials are stored within the committed source code /!\ as symfony YAML files. At time of this writing there's no environment / deployment based credential management in place.

Page Info: Created by GitHub on Jun 9, 2023 (last updated a minute ago by GitHub)